
#if 1

const char *template_version = "v2.0";
const char *template_date = "20241106";

/*
 * tail/head/tailport/headport/tailfull/headfull;
 */
const char *MODE = "tailfull";

int NODE_COLOR_MIN = 180;
int NODE_COLOR_MAX = 230;

int EDGE_COLOR_MIN = 10;
int EDGE_COLOR_MAX = 150;

int CLUSTER_COLOR_MIN = 230;
int CLUSTER_COLOR_MAX = 250;

// gvtext: [o/r/or] Origin or/and Render, generate gv file
const char *gvtext = "";
// for strict of pygraphviz.AGraph
const char *graph_strict = "false";

// default/all edge|node|subgraph|graph
const char *render_mode = "default";

// full/name
const char *funcpointer_mode = "name";

// typedef int gvfunc_t;

#endif

#ifndef LABEL_NODE
#define LABEL_NODE(_node, _label, ...) \
    _node [label=_label, ##__VA_ARGS__]
#endif

#ifndef CLUSTER_START
#define CLUSTER_START(_name) \
    subgraph cluster_##_name
#endif

#ifndef KEEP_LABEL_NODE
#define KEEP_LABEL_NODE(_node, _label, ...) \
    KEEP(LABEL_NODE(_node, _label, ##__VA_ARGS__))
#endif

#ifndef KEEP_CLUSTER_START
#define KEEP_CLUSTER_START(_name, ...) \
    KEEP(CLUSTER_START(_name, ##__VA_ARGS__))
#endif

/* http://www.graphviz.org/doc/info/attrs.html */

/*
 * splines:
 * none
 * line/false
 * polyline
 * curved
 * ortho
 * spline/true
 */
KEEP(   // graphviz text
    graph [rankdir=LR];
    graph [bgcolor="LightCyan:LightSteelBlue", gradientangle=300];
    splines = "polyline";
    node [shape=box, width=2];
    edge [minlen=2, penwidth=1];
);

/*
|          | solid | dashed | dotted | bold | tapered | invis |
|----------|-------|--------|--------|------|---------|-------|
|  none    |   -   |   --   |  ---   | ---- |  -----  |   ~   |
|  both    |   +   |   ++   |  +++   | ++++ |  +++++  |       |
|  forward |   >   |   >>   |  >>>   | >>>> |  >>>>>  |       |
|  back    |   <   |   <<   |  <<<   | <<<< |  <<<<<  |       |
*/

void main()
{

// body of CTREE must not be empty
// CTREE(
// );


}
